double:

<?
/* float */ $d = -111.0;
/* float */ $e = 2.71828184;
/* int */ $i = 2;
?>
0.0      : <?= 0.0 ?> 
.1       : <?= 0.1 ?> 
2.0      : <?= 2.0 ?> 
3.       : <?= 3.0 ?> 
4d       : <?= 4.0 ?> 
5.d      : <?= 5.0 ?> 
6e1      : <?= 60.0 ?> 
7e1d     : <?= 70.0 ?> 
8.7e+1d  : <?= 87.0 ?> 
8.7e+1   : <?= 87.0 ?> 
9.8e-20d : <?= 9.8E-20 ?> 
9.8e-20  : <?= 9.8E-20 ?> 

-0.0      : <?= -0.0 ?> 
-.1       : <?= -0.1 ?> 
-2.0      : <?= -2.0 ?> 
-3.       : <?= -3.0 ?> 
- 4d      : <?= -4.0 ?> 
-5.d      : <?= -5.0 ?> 
- 6e1     : <?= -60.0 ?> 
-7e1d     : <?= -70.0 ?> 
-8.7e+1d  : <?= -87.0 ?> 
-9.8e-20d : <?= -9.8E-20 ?> 

-2.0     : <?= -2.0 ?> 
- -3.    : <?= - -3.0 ?> 
- - -4d  : <?= - - -4.0 ?> 
-d       : <?= - $d ?> 
- -d     : <?= - - $d ?> 
-(.5)    : <?= - ( 0.5 ) ?> 
-(-6e10) : <?= - ( -6.0E10 ) ?> 

+2.0     : <?= +2.0 ?> 
+ +3.    : <?= + +3.0 ?> 
+ + +4d  : <?= + + +4.0 ?> 
+d       : <?= + $d ?> 
+ +d     : <?= + + $d ?> 
+(.5)    : <?= + ( 0.5 ) ?> 
+(+6e10) : <?= + ( +6.0E10 ) ?> 

+ -.1             : <?= + -0.1 ?> 
- +0.02           : <?= - +0.02 ?> 
+ - +3.           : <?= + - +3.0 ?> 
- + -4d           : <?= - + -4.0 ?> 
- - +5e1          : <?= - - +50.0 ?> 
+ + -6e+3d        : <?= + + -6000.0 ?> 
-2.0e-3d +.3e+14  : <?= -0.0020 + 3.0E13 ?> 
- .2 +0.00003     : <?= -0.2 + 3.0E-5 ?> 
-(2e100+3.)       : <?= - ( 2.0E100 + 3.0 ) ?> 

.2 * .3                    : <?= 0.2 * 0.3 ?> 
-0.002 * 0.0003            : <?= -0.0020 * 3.0E-4 ?> 
-200.0 * -3000.0           : <?= -200.0 * -3000.0 ?> 
5e10 / 30e100              : <?= 5.0E10 / 3.0E101 ?> 
-6e-20 / +3e-160           : <?= -6.0E-20 / +3.0E-160 ?> 
+7.0e+30  / +3.8e+40       : <?= +7.0E30 / +3.8E40 ?> 
+8.9e-50d  / +11.128e-200d : <?= +8.9E-50 / +1.1128E-199 ?> 

2 * 3 / 2.0 : <?= 2 * 3 / 2.0 ?> 
2 * 3.0 / 2 : <?= 2 * 3.0 / 2 ?> 
2.0 * 3 / 2 : <?= 2.0 * 3 / 2 ?> 
3 / 2 * 2.0 : <?= (int) (3 / 2) * 2.0 ?> 
3 / 2.0 * 2 : <?= 3 / 2.0 * 2 ?> 
3.0 / 2 * 2 : <?= 3.0 / 2 * 2 ?> 

3 / 2 * 2.0 + 3 / 2 * 2.0 : <?= (int) (3 / 2) * 2.0 + (int) (3 / 2) * 2.0 ?> 
5.0 / (1 + 1)             : <?= 5.0 / ( 1 + 1 ) ?> 
5 / (1 + 1)               : <?= (int) (5 / ( 1 + 1 )) ?> 
5 / (1 + 1.0)             : <?= 5 / ( 1 + 1.0 ) ?> 
5 / (1 - 2.0)             : <?= 5 / ( 1 - 2.0 ) ?> 
5 / (2 * 2.0)             : <?= 5 / ( 2 * 2.0 ) ?> 

--d     : <?= --$d ?> 
-- d    : <?= --$d ?> 
+ --d   : <?= + --$d ?> 
- --d   : <?= - --$d ?> 
- --d   : <?= - --$d ?> 
- + --d : <?= - + --$d ?> 
+ - --d : <?= + - --$d ?> 
d--     : <?= $d-- ?> 
d --    : <?= $d-- ?> 
+ d--   : <?= + $d-- ?> 
- d--   : <?= - $d-- ?> 
+ + d-- : <?= + + $d-- ?> 
- - d-- : <?= - - $d-- ?> 

++d     : <?= ++$d ?> 
++ d    : <?= ++$d ?> 
+ ++d   : <?= + ++$d ?> 
- ++d   : <?= - ++$d ?> 
- ++d   : <?= - ++$d ?> 
- + ++d : <?= - + ++$d ?> 
+ - ++d : <?= + - ++$d ?> 
d++     : <?= $d++ ?> 
d ++    : <?= $d++ ?> 
+ d++   : <?= + $d++ ?> 
- d++   : <?= - $d++ ?> 
+ + d++ : <?= + + $d++ ?> 
- - d++ : <?= - - $d++ ?> 

- --d - 2 : <?= - --$d - 2 ?> 
+ --d * 3 : <?= + --$d * 3 ?> 
- d-- - 2 : <?= - $d-- - 2 ?> 
+ d-- * 3 : <?= + $d-- * 3 ?> 
- ++d - 2 : <?= - ++$d - 2 ?> 
+ ++d * 3 : <?= + ++$d * 3 ?> 
- d++ - 2 : <?= - $d++ - 2 ?> 
+ d++ * 3 : <?= + $d++ * 3 ?> 

--d - --e : <?= --$d - --$e ?> 
d-- - --e : <?= $d-- - --$e ?> 
d-- - e-- : <?= $d-- - $e-- ?> 
--d - e-- : <?= --$d - $e-- ?> 
++d + ++e : <?= ++$d + ++$e ?> 
d++ + ++e : <?= $d++ + ++$e ?> 
d++ + e++ : <?= $d++ + $e++ ?> 
++d + e++ : <?= ++$d + $e++ ?> 

d += d /= 1                   : <?= $d = $d + $d /= 1 ?> 
d += d /= i <<= i -= 1        : <?= $d = $d + $d /= $i = $i << $i -= 1 ?> 
d *= e -= d += e /= 1         : <?= $d = $d * $e = $e - $d += $e /= 1 ?> 
d /= d -= 1 + ( i /= i /= 1 ) : <?= $d = $d / $d -= 1 + ( $i = (int) ($i / $i = (int) ($i / 1)) ) ?> 
e /= e /= 1                   : <?= $e = $e / $e /= 1 ?> 
d -= e += d = e *= 100        : <?= $d = $d - $e = $e + $d = $e *= 100 ?> 

<? /* float */ $d21 = 21; /* float */ $d11 = 11; /* float */ $d6 = 6; /* float */ $d4 = 4; ?> 

d4 += 1                : <?= $d4 += 1 ?> 
d4                     : <?= $d4 ?> 
d4 += d6   = 7         : <?= $d4 += $d6 = 7 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d4  = d6  += 1         : <?= $d4 = $d6 += 1 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d4 += d6  += 1         : <?= $d4 += $d6 += 1 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d4 += d6 += d11 += d21 : <?= $d4 += $d6 += $d11 += $d21 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d11                    : <?= $d11 ?> 

d4 -= 1                : <?= $d4 -= 1 ?> 
d4                     : <?= $d4 ?> 
d4 -= d6   = 7         : <?= $d4 -= $d6 = 7 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d4  = d6  -= 1         : <?= $d4 = $d6 -= 1 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d4 -= d6  -= 1         : <?= $d4 -= $d6 -= 1 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d4 -= d6 -= d11 -= d21 : <?= $d4 -= $d6 -= $d11 -= $d21 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d11                    : <?= $d11 ?> 
d4 -= d6 += d11 -= d21 : <?= $d4 -= $d6 += $d11 -= $d21 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d11                    : <?= $d11 ?> 

d4 *= 1                : <?= $d4 *= 1 ?> 
d4                     : <?= $d4 ?> 
d4 *= d6   = 7         : <?= $d4 *= $d6 = 7 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d4  = d6  *= 1         : <?= $d4 = $d6 *= 1 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d4 *= d6  *= 1         : <?= $d4 *= $d6 *= 1 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d4 *= d6 *= d11 *= d21 : <?= $d4 *= $d6 *= $d11 *= $d21 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d11                    : <?= $d11 ?> 
d4 *= d6 += d11 -= d21 : <?= $d4 *= $d6 += $d11 -= $d21 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d11                    : <?= $d11 ?> 

d4 /= 1                : <?= $d4 /= 1 ?> 
d4                     : <?= $d4 ?> 
d4 /= d6   = 7         : <?= $d4 /= $d6 = 7 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d4  = d6  /= 1         : <?= $d4 = $d6 /= 1 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d4 /= d6  /= 1         : <?= $d4 /= $d6 /= 1 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d4 /= d6 /= d11 /= d21 : <?= $d4 /= $d6 /= $d11 /= $d21 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d11                    : <?= $d11 ?> 
d4 /= d6 += d11 -= d21 : <?= $d4 /= $d6 += $d11 -= $d21 ?> 
d4                     : <?= $d4 ?> 
d6                     : <?= $d6 ?> 
d11                    : <?= $d11 ?> 


Double:

Double.MAX_VALUE                              : <?= 1.7976931348623157E308 ?> 
Double.MIN_VALUE                              : <?= 4.9E-324 ?> 
Double.NaN                                    : <?= NAN ?> 
Double.POSITIVE_INFINITY                      : <?= INF ?> 
Double.NEGATIVE_INFINITY                      : <?= -INF ?> 
Double.SIZE                                   : <?= 64 ?> 
TODO: Double.isInfinite( 1 )
Double.isInfinite( 1.0 )                      : <?= is_infinite(1.0) ? "true" : "false" ?> 
Double.isInfinite( Double.POSITIVE_INFINITY ) : <?= is_infinite(INF) ? "true" : "false" ?> 
Double.isInfinite( Double.NEGATIVE_INFINITY ) : <?= is_infinite(-INF) ? "true" : "false" ?> 
Double.isInfinite( Double.NaN )               : <?= is_infinite(NAN) ? "true" : "false" ?> 
Double.isNaN( 1.0 )                           : <?= is_nan(1.0) ? "true" : "false" ?> 
Double.isNaN( Double.POSITIVE_INFINITY )      : <?= is_nan(INF) ? "true" : "false" ?> 
Double.isNaN( Double.NEGATIVE_INFINITY )      : <?= is_nan(-INF) ? "true" : "false" ?> 
Double.isNaN( Double.NaN )                    : <?= is_nan(NAN) ? "true" : "false" ?> 
Double.parseDouble("1e1")                     : <?= (float) "1e1" ?> 
Double.toString( 1.0 )                        : <?= (string) 1.0 ?> 
Double.toString( Double.POSITIVE_INFINITY )   : <?= (string) INF ?> 
Double.toString( Double.NEGATIVE_INFINITY )   : <?= (string) -INF ?> 
Double.toString( Double.NaN )                 : <?= (string) NAN ?> 

Double infinities and nan can surprize:
Double.NEGATIVE_INFINITY < Double.NEGATIVE_INFINITY    : <?= -INF < -INF ? "true" : "false" ?> 
Double.NEGATIVE_INFINITY <= Double.NEGATIVE_INFINITY   : <?= -INF <= -INF ? "true" : "false" ?> 
Double.NEGATIVE_INFINITY > Double.NEGATIVE_INFINITY    : <?= -INF > -INF ? "true" : "false" ?> 
Double.NEGATIVE_INFINITY >= Double.NEGATIVE_INFINITY   : <?= -INF >= -INF ? "true" : "false" ?> 

Double.NEGATIVE_INFINITY < Double.NaN                  : <?= -INF < NAN ? "true" : "false" ?> 
Double.NEGATIVE_INFINITY <= Double.NaN                 : <?= -INF <= NAN ? "true" : "false" ?> 
Double.NEGATIVE_INFINITY > Double.NaN                  : <?= -INF > NAN ? "true" : "false" ?> 
Double.NEGATIVE_INFINITY >= Double.NaN                 : <?= -INF >= NAN ? "true" : "false" ?> 

Double.NEGATIVE_INFINITY < 1                           : <?= -INF < 1 ? "true" : "false" ?> 
Double.NEGATIVE_INFINITY <= 1                          : <?= -INF <= 1 ? "true" : "false" ?> 
Double.NEGATIVE_INFINITY > 1                           : <?= -INF > 1 ? "true" : "false" ?> 
Double.NEGATIVE_INFINITY >= 1                          : <?= -INF >= 1 ? "true" : "false" ?> 

Double.NEGATIVE_INFINITY < Double.POSITIVE_INFINITY    : <?= -INF < INF ? "true" : "false" ?> 
Double.NEGATIVE_INFINITY <= Double.POSITIVE_INFINITY   : <?= -INF <= INF ? "true" : "false" ?> 
Double.NEGATIVE_INFINITY > Double.POSITIVE_INFINITY    : <?= -INF > INF ? "true" : "false" ?> 
Double.NEGATIVE_INFINITY >= Double.POSITIVE_INFINITY   : <?= -INF >= INF ? "true" : "false" ?> 

